import {INCREMENT} from './mutations-types'

export default {
    // 每一个mutations方法都可以看成是两部分：事件类型和负载
    // 存放方法
    [INCREMENT](state) {
        state.counter++;
    },
    decrement(state) {
        state.counter--;
    },
    // incrementCount(state,count){
    //     // 参数被称为是mutation的载荷（Payload）
    //     // 1. 普通提交风格接收方式
    //     state.counter += count
    // },
    incrementCount(state, payload) {
        // 参数被称为是mutation的载荷（Payload）
        // 2. 带有type属性对象的提交方式
        console.log(payload)
        state.counter += payload.count
    },
    incrementStu(state, stu) {
        state.students.push(stu)
    },
    updateInfo(state, payload) {
        // delete state.info.age

        // 试验可知，代码中只要有一行代码能触发响应式，不规范的添加删除数据方式也能被监听，与存放位置无关
        state.info.name = 'wayne'
        // state.info.name = payload.name
        // 不能响应式更新
        // state.info.address = '洛杉矶'
        // 响应式更新
        // Vue.set(state.info, 'address', '洛杉矶')
        // 不能响应式更新
        // delete state.info.age
        // 响应式删除数据
        // Vue.delete(state.info, 'age')

        // 模仿数据请求，修改页面但是无法监听数据已经改变：mutations只能进行同步操作
        // setTimeout(()=>{
        //     state.info.name = 'wayne'
        // },2000)
    }
}